package cn.iocoder.yudao.module.shop.category.pojo.po;

import cn.iocoder.yudao.framework.business.basic.enums.EnumCodable;
import cn.iocoder.yudao.framework.business.basic.pojo.po.BaseEntity;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.module.api.shop.category.eums.ShopCategoryCodeEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 行业类目 DO
 *
 * @author 山野羡民（1032694760@qq.com）
 */
@TableName("shop_category")
@KeySequence("shop_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@NoArgsConstructor
public class ShopCategory extends BaseEntity implements EnumCodable {

    /**
     * 父分类编号 - 根分类
     */
    public static final Long PARENT_ID_ROOT = 0L;
    /**
     * 限定分类层级
     */
    public static final int CATEGORY_LEVEL_ROOT = 0;
    /**
     * 限定分类层级
     */
    public static final int CATEGORY_LEVEL_FIRST = 1;
    /**
     * 限定分类层级
     */
    public static final int CATEGORY_LEVEL_SECOND = 2;

    /**
     * 分类标识，用于给前端做判断
     *
     * @see ShopCategoryCodeEnum
     */
    private String code;
    /**
     * 父分类编号
     */
    private Long parentId;
    /**
     * 分类名称
     */
    private String name;
    /**
     * 移动端分类图
     * <p>
     * 建议 180*180 分辨率
     */
    private String iconUrl;
    /**
     * 跳转链接
     */
    private String linkUrl;
    /**
     * 保证金
     */
    private Long depositPrice;
    /**
     * 是否推荐
     */
    private Boolean recommend;
    /**
     * 分类排序
     */
    private Integer sort;
    /**
     * 层级深度
     */
    private Integer depth;
    /**
     * 开启状态
     * <p>
     * 枚举 {@link CommonStatusEnum}
     */
    private Integer status;
    /**
     * 供应方名称
     */
    private String supplyName;
    /**
     * 供应方关联编号
     */
    private Long supplyRelatedId;
    /**
     * 供应方关联父级编号
     */
    private Long supplyRelatedParentId;

}
